package com.td.module.agro.controller.admin.review.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.td.framework.excel.core.annotations.DictFormat;
import com.td.framework.excel.core.convert.DictConvert;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;


/**
 * 溯源信息 Excel VO
 *
 * @author 吴佰强
 */
@Data
public class ReviewExcelVO {

    @ExcelProperty("主键id")
    private Long id;

    @ExcelProperty(value = "数据层面", converter = DictConvert.class)
    @DictFormat("agro_review_data_tab") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer pollingType;

    @ExcelProperty("农产品名称")
    private String agroProductName;

    @ExcelProperty(value = "农产品类别（1.粮油作物 2.瓜果、蔬菜 3.食用菌 4.花卉、苗木 5.药材）", converter = DictConvert.class)
    @DictFormat("agro_review_product_type") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer agroProductType;

    @ExcelProperty("农产品描述")
    private String agroProductDescribe;

    @ExcelProperty("农产品产地")
    private String agroProductOrigin;

    @ExcelProperty("农产品制造商")
    private String agroProductManufacturer;

    @ExcelProperty("农产品价格")
    private BigDecimal agroProductPrice;

    @ExcelProperty("农产品重量")
    private BigDecimal agroProductWeight;

    @ExcelProperty(value = "储存方式（1.常规储存 2.沟藏和堆藏 3.窖窑储存 4. 冷藏储存 5.气调保鲜储存）", converter = DictConvert.class)
    @DictFormat("agro_review_storage_method") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer storageMethod;

    @ExcelProperty(value = "包装方式（1.防潮包装 2.防水包装 3.防霉包装 4.充气包装 5.真空包装 6.冷冻包装）", converter = DictConvert.class)
    @DictFormat("agro_review_packaging_method") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer packagingMethod;

    @ExcelProperty("储存时间")
    private String storageTime;

    @ExcelProperty("生产日期")
    private LocalDateTime produceDate;

    @ExcelProperty(value = "环境监测类别(1.土地、2.水质)", converter = DictConvert.class)
    @DictFormat("agro_review_environment_monitoring_type") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer environmentMonitoringType;

    @ExcelProperty(value = "环境监测方式（0.无监测 1化学监测，2物理监测，3生物监测，4生态监测）", converter = DictConvert.class)
    @DictFormat("agro_review_environment_monitoring_method") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer environmentMonitoringMethod;

    @ExcelProperty("环境监测负责人")
    private String environmentMonitoringPerson;

    @ExcelProperty(value = "环境监测结果（0.不合格 1.合格）", converter = DictConvert.class)
    @DictFormat("agro_review_environment_monitoring_result") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer environmentMonitoringResult;

    @ExcelProperty("环境监测开始时间")
    private LocalDateTime environmentMonitoringStartTime;

    @ExcelProperty("环境监测结束时间")
    private LocalDateTime environmentMonitoringEndTime;

    @ExcelProperty("生产视频监控地址（生产视频）")
    private String produceVideoMonitorUrl;

    @ExcelProperty("生产视频监控时间")
    private LocalDateTime produceVideoMonitorTime;

    @ExcelProperty("质量检测机构")
    private String qualityTestOrganization;

    @ExcelProperty("质量检测负责人")
    private String qualityTestPerson;

    @ExcelProperty(value = "质量检测方式（0.无检验 1. 集中检验 2. 现场检验 3. 流动检验(巡检)）", converter = DictConvert.class)
    @DictFormat("agro_review_quality_test_method") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer qualityTestMethod;

    @ExcelProperty("质量检测项目与依据")
    private String qualityTestProjectBasis;

    @ExcelProperty(value = "质量检测结果（0.抽检不合格 1.抽检合格）", converter = DictConvert.class)
    @DictFormat("agro_review_quality_test_result") // TODO 代码优化：建议设置到对应的 XXXDictTypeConstants 枚举类中
    private Integer qualityTestResult;

    @ExcelProperty("送检日期")
    private LocalDateTime qualityTestSamplingTime;

    @ExcelProperty("质量检测日期")
    private LocalDateTime qualityTestTime;

    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}
